package com.ruoyi.eqmonitor.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.annotation.Excel;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 设备监测指标 视图
 * @author ruoyi
 * @date 2022-11-25
 */
@Data
public class OptDeviceMonitorLastDataVo implements Serializable {

    private static final long serialVersionUID = 1L;

    /** 编号 */
    private Long id;

    /** 设备名称 */
    @Excel(name = "设备名称")
    private String deviceName;

    /** 设备编码 */
    @Excel(name = "设备编码")
    private String deviceCode;

    /** 站点名称 */
    @Excel(name = "站点名称")
    private String siteName;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 安装时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "安装时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date installTime;

    /** 经度 */
    @Excel(name = "经度")
    private BigDecimal abx;

    /** 纬度 */
    @Excel(name = "纬度")
    private BigDecimal aby;

    /** 采集数据编码 */
    @Excel(name = "采集数据编码")
    private String code;

    /** 采集数据值 */
    @Excel(name = "采集数据值")
    private Double codeValue;

    /** 采集指标单位 */
    @Excel(name = "采集指标单位")
    private String dataUnit;

    /** 数据采集时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "数据采集时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date monitorTime;

    /** 采集指标名称 */
    @Excel(name = "采集指标名称")
    private String monitorName;

    /** 位置 */
    @Excel(name = "位置")
    private String address;

    /** 真实设备编码 */
    @Excel(name = "真实设备编码")
    private String realDeviceCode;

    /** 片区编码 */
    @Excel(name = "片区编码")
    private String areaCode;

    /** 片区名称 */
    @Excel(name = "片区名称")
    private String areaName;

    /** 泵站主键 */
    private Long pumpStationId;

    /** 泵站名称 */
    @Excel(name = "泵站名称")
    private String pumpStationName;

    /** 污水厂id */
    private Long sewageId;

    /** 污水厂名字 */
    @Excel(name = "污水厂名字")
    private String sewageName;

    /** 泵站污水厂分区id(根据分区确定的本区域下设备) */
    private Long sewagePumpRangeId;

    /** 泵站污水厂分区name(根据分区确定的本区域下设备) */
    @Excel(name = "污水厂服务范围名字")
    private String sewagePumpRangeName;

    /** 查询条件 设备类型集合 */
    @JsonIgnore
    private List<String> deviceTypes;
    /** 查询条件 泵站ids集合 */
    @JsonIgnore
    private List<Long> pumpStationIds;
    /** 请求参数 */
    @JsonIgnore
    private Map<String, Object> params;

    public Map<String, Object> getParams() {
        if (params == null) {
            params = new HashMap<>();
        }
        return params;
    }
    public void setParams(Map<String, Object> params) {
        this.params = params;
    }

}
